package cn.bookcycle.paypage.util;

import java.util.HashMap;
import java.util.Map;

import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import cn.bookcycle.paypage.constant.Symbol;

/**
 * 数据格式转换工具类
 *
 * @author liufenglin
 * @date 2018年3月15日
 */
public class DataFormatConvert {
	private static final Logger logger = LoggerFactory.getLogger(DataFormatConvert.class);
	
	/**
	 * 把以&符号分割开key=value数据转换为JSON格式数据
	 * 
	 * @param requestBody
	 * @return
	 */
	public static String requestStr2Json(String requestBody) {
		logger.warn("requestBody:{}", requestBody);
		// 存放key，value的Map
		Map<String, Object> map = new HashMap<String, Object>();
		// 对requestBody按照&进行分割
		String [] arrStr = requestBody.split(Symbol.AND_SIGN);
		// 遍历切割后的数组
		for (int i = 0; i < arrStr.length; ++i) {
			// 对数组的每一个字符串，又按照=符号切割为key和value，并存放到map中
			int signIndex = arrStr[i].indexOf(Symbol.EQUAL_SIGN);
			String key = arrStr[i].substring(0, signIndex);
			String value = arrStr[i].substring(signIndex + 1);		
			map.put(key, value);
		}
		// 将map转json
		JSONObject jsonObject = new JSONObject(map);
		String json = jsonObject.toString();
		logger.warn("requestStr2Json得到的json是：{}", json);
		// 返回json串
		return json;
	}
	
	/**
	 * 清洗json数据为标准格式
	 * 
	 * @param json
	 * @return
	 */
	public static String washJson(String json) {
		int beginIndex = json.indexOf(Symbol.BRACKET);
		int endIndex = json.lastIndexOf(Symbol.BACK_BRACKET);
		String cleanJson = json.substring(beginIndex, endIndex + 1);
		return cleanJson;
	}
}
